<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ion scripts collection</title>
<link href="default.css" title="Default" rel="stylesheet" type="text/css">
</head>
<body>

<div class=title><h1>Ion3 scripts collection</h1></div>

Here are some scripts for Ion3. All of them are in the public domain unless
otherwise mentioned in the source file.
<p>
Please note that some of the scripts are not up to date, and do
not work with the latest version. Those that are known to need
working, are <strike>over-striked</strike>. Please fix them,
if you need them.

<p>

<ul class="contents">
<li><a href="#scripts">Scripts</a>
<li><a href="#keybindings">Key bindings</a>
<li><a href="#styles">Styles</a>
<li><a href="#statusbar">Statusbar monitors</a>
<li><a href="#instructions">Instructions</a> &rarr;
    <a href="#using">Using</a>,
    <a href="#download">Downloading</a>,
    <a href="#contrib">Contributing</a>
</ul>

<h2>Scripts</h2>
<a name="scripts"></a>

<dl>
    <!-- New scripts in alphabetical order, please -->
    <dt> <a href="scripts/adapt_menus.lua">adapt_menus.lua</a>
    <dd> Functions for creating a hierarchy of menus for various clients
             available. Key features are an attempt to organise by type hints (from
             the window titles) and collapse submenus when they contain only a few items.
             
    <dt> <strike><a href="scripts/alt_resize.lua">alt_resize.lua</a></strike>
    <dd> Possibly more intuitive resizing bindings.

    <dt> <a href="scripts/app.lua">app.lua</a>
    <dd> Start an application if it's not running, but go to it if it's
        already started. There's also a function to replace query_editfile
        which will use a running emacs instance (starting it if necessary,
        of course).

    <dt> <a href="scripts/autoprop.lua">autoprop.lua</a>
    <dd> Automatically create a winprop for the given client targeted to
    the given frame. Allows them to be saved and reloaded automatically.

    <dt> <a href="scripts/bindsearch.lua">bindsearch.lua</a>
    <dd> Search the current bindings table by key or by command.

    <dt> <a href="scripts/bookmarks.lua">bookmarks.lua</a>
    <dd> Bookmarks support

    <dt> <a href="scripts/cfg_dock2.lua">cfg_dock2.lua</a>
    <dd> A dock configuration with lots of added control.
    
    <dt> <strike><a href="scripts/closeorkill.lua">closeorkill.lua</a></strike>
    <dd> Kill client on second close try if it did not respond to close

    <dt> <a href="scripts/collapse.lua">collapse.lua</a>
    <dd> Collapse frames on a WTiling into a single frame

    <dt> <a href="scripts/ctrl_statusbar.lua">ctrl_statusbar.lua</a>
    <dd> Menu-driven controller for the statusbar. Modules can be enabled/
    disabled from the menu, without requiring to edit the configuration file.

    <dt> <a href="scripts/cwin_sp.lua">cwin_sp.lua</a>
    <dd> Create per-clientwin scratchpads

    <dt> <a href="scripts/document_menus.lua">document_menus.lua</a>
    <dd> Navigate the filesystem using ion menus.

    <dt> <a href="scripts/enumerate.lua">enumerate.lua</a>
    <dd> Adds "X." in front of the client windows, which may make switching
    between client-windows with MOD+n a little easier .

    <dt> <a href="scripts/environment_placement_hook.lua">environment_placement_hook.lua</a>
    <dd> Linux-only placement hook which detects the presence of an ION_USE_WS
    environment variable in the processes of new windows, and uses that to
    determine where to place them.

    <dt> <a href="scripts/exec_show.lua">exec_show.lua</a>
    <dd> Execute some shell-command (tail, head, grep etc) and display the result.

    <dt> <a href="scripts/float-sb.lua">float-sb.lua</a>
    <dd> Example of a floating toggleable statusbar.

    <dt> <a href="scripts/frame_client_menu.lua">frame_client_menu.lua</a>
    <dd> Adds a 'Client windows' submenu to a frame's context menu, the menu contains all the clients in the current frame.

    <dt> <a href="scripts/go_frame_or_desk.lua">go_frame_or_desk.lua</a>
    <dd> selects frame in the specified direction. If there is
         no frame at that location, instead the next workspace
         in the direction becomes active

    <dt> <a href="scripts/goto_multihead.lua">goto_multihead.lua</a>
    <dd> A version of <tt>goto_dir</tt> that may be useful on
         multihead setups.
    
    <dt> <strike><a href="scripts/heuristics.lua">heuristics.lua</a></strike>
    <dd> Window placement heuristics for tiled workspaces

    <dt> <a href="scripts/histcompl.lua">histcompl.lua</a>
    <dd> History completion support for the line editor

    <dt> <a href="scripts/lock_frame.lua">lock_frame.lua</a>
    <dd> 'Lock' selected frames so they don't close via the keyboard. 

    <dt> <a href="scripts/min_tabs.lua">min_tabs.lua</a>
    <dd> Show tabs precisely when two or more windows in an ion frame

    <dt> <a href="scripts/move_current.lua">move_current.lua</a>
    <dd> Move current window in a frame to another frame in specified
         direction
    
    <dt> <strike><a href="scripts/mp.lua">mp.lua</a></strike>
    <dd> Mark next mapped window to be attached to a specified object

    <dt> <a href="scripts/mpd.lua">mpd.lua</a>
    <dd> Control a MusicPD server from within Ion

    <dt> <a href="scripts/named_floating_groupws.lua">named_floating_groupws.lua</a>
    <dd> Toggle (and create) floating WGroupWS:s by name.

    <dt> <a href="scripts/named_scratchpad.lua">named_scratchpad.lua</a>
    <dd> Toggle (and create) scratchpads by name.

    <dt> <a href="scripts/net_client_list.lua">net_client_list.lua</a>
    <dd> Maintain the _NET_CLIENT_LIST property (and the
         _NET_CLIENT_LIST_STACKING property incorrectly) on the root window.

    <dt> <strike><a href="scripts/nest_ws.lua">nest_ws.lua</a></strike>
    <dd> Attach workspaces to windows, to e.g. have a WIonWS inside a
    WFloatWS, or vice versa

    <dt> <a href="scripts/nextact.lua">nextact.lua</a>
    <dd> Go to first found region with activity flag set.
    
    <dt> <a href="scripts/notifybox.lua">notifybox.lua</a>
    <dd> Show notification boxes, similar to the activity notification.

    <dt> <a href="scripts/nowarp_scratchpad.lua">nowarp_scratchpad.lua</a>
    <dd> Keeps ion from warping the pointer when activating a scratchpad
         region.

    <dt> <a href="scripts/panel.lua">panel.lua</a>
    <dd> Facilitates placing arbitrary windows with the <tt>is_panel</tt>
         winprop set to true, as the stdisp.

    <dt> <a href="scripts/query_url.lua">query_url.lua</a>
    <dd> Open a URL, completing on Opera bookmark file. Should be easy to
         support other browsers.

    <dt> <a href="scripts/rotate_statusbar.lua">rotate_statusbar.lua</a>
    <dd> Rotate the statusbar between different templates.  This will
         automatically load all of the modules for ion-statusd.

    <dt> <a href="scripts/rss_feed.lua">rss_feed.lua</a>
    <dd> A simple rss-reader script in lua for ion.

    <dt> <a href="scripts/rss_feed_hh.lua">rss_feed_hh.lua</a>
    <dd> Some small improvements to match rss_feed my personal taste.

    <dt> <a href="scripts/schedule.lua">schedule.lua</a>
    <dd> Schedule some messages to show up at specified times in the statusbar.

    <dt> <strike><a href="scripts/send_to_ws.lua">send_to_ws.lua</a></strike>
    <dd> Quickly send to another workspace.

    <dt> <a href="scripts/show_submap.lua">show_submap.lua</a></dt>
    <dd> Displays an infowin with the currently active submap.</dd>

    <dt> <a href="scripts/simple_bindings.lua">simple_bindings.lua</a></dt>
    <dd> Add a first pass at the simple bindings script.</dd>

    <dt> <a href="scripts/stock.lua">stock.lua</a></dt>
    <dd> An applet for retrieving and displaying stock market information
      from <a href="http://finance.yahoo.com">http://finance.yahoo.com.</a> 
      You can set up a portfolio and monitor its intraday performance.</dd>

    <dt> <a href="scripts/switch_bindings.lua">switch_bindings.lua</a>
    <dd> Switch between key-bindings. You can temporarily disable keybindings and
    restore them later when necessary.
    
    <dt> <a href="scripts/tabmenu.lua">tabmenu.lua</a>
    <dd> A grabmenu-based alternative to tabs.

    <dt> <strike><a href="scripts/weather.lua">weather.lua</a></strike></dt>
    <dd> This script allows you to retreive weather information from one or more
    weather observation stations and display it in the statusbar.</dd>

    <dt> <a href="scripts/xinerama_switcher.lua">xinerama_switcher.lua</a></dt>
    <dd> This is similar to (and base on) <a
      href="scripts/go_frame_or_desk.lua">go_frame_or_desk.lua</a> but adds
    the ability to move between screens too. Left/right switch between
    screens, up/down between workspaces.</dd>

    <dt> <a href="scripts/xkbion.lua">xkbion.lua</a></dt>
    <dd> This script allows you to use independent keyboard layouts for different windows in Ion3.
    It uses a window property to store the XKB groups, so you can restart Ion without losing
    settings for each window.</dd>

    <dt> <a href="scripts/zoom.lua">zoom.lua</a>
    <dd> Simulates larswm-like window zooming.

</dl>

<h2>Key bindings</h2>
<a name="keybindings"></a>
<dl>
    <!-- New scripts in alphabetical order, please -->

    <dt> <a href="keybindings/cfg_mouse.lua">cfg_mouse.lua</a>
    <dd> Make the mouse pull its weight in ion. </dd>

    <dt> <a href="keybindings/dans_bindings.lua">dans_bindings.lua</a>
    <dd> Keybindings for more intuitive WIonWS navigation.</dd>

    <dt> <a href="keybindings/emacs_bindings.lua">emacs_bindings.lua</a>
    <dd> Emacs-like keybindings for Ion </dd>

    <dt> <a href="keybindings/vim_bindings.lua">vim_bindings.lua</a>
    <dd> Vim-like keybindings for Ion queries.</dd>
</dl>

<h2>Styles</h2>
<a name="styles"></a>

<dl>
    <!-- New scripts in alphabetical order, please -->

    <dt> <a href="styles/look_alex.lua">look_alex.lua</a>
    <dd> Black tabs, green text and borders.

    <dt> <a href="styles/look_asm.lua">look_asm.lua</a></dt>
    <dd> A clean grey-blue theme with not too big tabs.</dd>
    
    <dt> <a href="styles/look_atme.lua">look_atme.lua</a>
    <dd> A style which just looks nice.

    <dt> <a href="styles/look_awesome.lua">look_awesome.lua</a>
    <dd> Inspired by look_clean, comes fully-equipped with big, friendly
         tabs, tasty single-pixel borders, and a sprinkling of transparency.
         Makes use of the
         <a href="http://www.is-vn.bg/hamster/jimmy-en.html">Terminus</a>
         font.

    <dt> <a href="styles/look_awesome_sm.lua">look_awesome_sm.lua</a>
    <dd> A style based on look_awesome above, but with smaller
         fonts and paddings and no transparency by default.
         This style makes use of the 'nexus' font for tabs.

    <dt> <a href="styles/look_awesome_yaarg.lua">look_awesome_yaarg.lua</a>
    <dd> A style based on look-awesome-sm above, but with darker colours
    to give a more somber feel.

    <dt> <a href="styles/look_bas.lua">look_bas.lua</a>
    <dd> A style which colors fit the mozilla-bb background. It makes
         use of the techy artwiz font.

    <dt> <a href="styles/look_blue.lua">look_blue.lua</a>
    <dd> A blue/gray theme based on look_violet.lua, with a nice clean look.

    <dt> <a href="styles/look_bluecurve.lua">look_bluecurve.lua</a>
    <dd> A theme that fits the colors of the bluecurve-theme by
     <a href="http://www.redhat.com">Redhat</a>

    <dt> <a href="styles/look_cleanpastel.lua">look_cleanpastel.lua</a>
    <dd> Similar to stock look-clean* styles, but greenish.

    <dt> <a href="styles/look_cleansteel.lua">look_cleansteel.lua</a>
    <dd> The stock look-brownsteel style with borders removed on tiled
         workspaces for cleaner look.

    <dt> <a href="styles/look_cleansteel_trans.lua">look_cleansteel_trans.lua</a>
    <dd> Based on look_cleansteel, but with transparent backgrounds,
         smaller font sizes, and a coloured notification.

    <dt> <a href="styles/look_cleanwhite.lua">look_cleanwhite.lua</a>
    <dd> A bright theme that fits white terminals and white Emacs
         windows.

    <dt> <a href="styles/look_cool.lua">look_cool.lua</a>
    <dd> A style based on look-awesome, made to fit the KDE color scheme
         "plastic-grey". Made by Steffen Liebergeld (26.08.2004).

    <dt> <a href="styles/look_gtk2.lua">look_gtk2.lua</a>
    <dd> A theme that fits the default GTK+2 colors. It makes use of the
         terminus and artwiz fonts.

    <dt> <a href="styles/look_minimalist.lua">look_minimalist.lua</a>
    <dd> A simple gold/red style with relatively large frame borders
         designed to increase usability with the minimal tabs modification.

    <dt> <a href="styles/look_moy.lua">look_moy.lua</a>
    <dd> Grey and violet simple theme.

    <dt> <a href="styles/look_ootput.lua">look_ootput.lua</a>
    <dd> A non-obtrusive style with clear distinctions between active borders
    and less active borders. This style makes use of the
    <a href="http://www.tobias-jung.de/seekingprofont/index.html">Profont</a> font.

    <dt> <a href="styles/look_ootput_dark.lua">look_ootput_dark.lua</a>
    <dd> A darker version of look_ootput that is easier on the eyes.

    <dt> <a href="styles/look_outback.lua">look_outback.lua</a>
    <dd> A warm style with sandy hints and distinctive contrast.
	<a href="http://www.csh.rit.edu/~apox/images/screenshots/20080408.png">Screenshot</a>.

    <dt> <a href="styles/look_qt.lua">look_qt.lua</a>
    <dd> A drawing engine configuration file that reads settings
     from <a href="http://trolltech.com/products/qt/">Qt</a>
     configuration file ~/.qt/qtrc.

    <dt> <a href="styles/look_tibi.lua">look_tibi.lua</a>
    <dd> A style which clearly emphasizes active elements and thus
      lets you quickly recognize them.  The `accent' color is
      configurable.

    <dt> <a href="styles/look_tiny.lua">look_tiny.lua</a>
    <dd> A major modification of look_minimalist, aiming to keep
         everything small while not making anything unattractive.

    <dt> <a href="styles/look_tiny_min_tabs.lua">look_tiny_min_tabs.lua</a>
    <dd> A major modification of look_minimalist, aiming to keep
         everything small while not making anything unattractive.
         For use with min_tabs.

    <dt> <a href="styles/look_whitecode.lua">look_whitecode.lua</a>
    <dd> Clean white/light grey theme. Comes handy for glare displays as
         reflection is not as evil as with a dark theming.
         I recommend background color #808080 for a cool look in floating
         workspaces.
         <small>(Tested only on my LCD, so no idea what it looks like on a CRT)</small>

 </dl>

<h2>Statusbar</h2>
<a name="statusbar"></a>

All statusbar monitors are loaded automatically based on the statusbar 
template. <strong>Do not attempt to load them manually</strong> (especially
not the statusd scripts). Please see <a href="#instructions">instructions</a>
below for more information.

<h3>Internal monitors</h3>
<a name="statusbar-internal"></a>

<dl>
    <!-- New scripts in alphabetical order, please -->
    <dt> <a href="statusbar/statusbar_act.lua">statusbar_act.lua</a>
    <dd> Activity (urgency flag, new unacted-upon transients, etc.) 
         display for the statusbar.
    <dt> <a href="statusbar/statusbar_external.lua">statusbar_external.lua</a>
    <dd> Show output of external programs or scripts in statusbar. If you are using ion-3ds-20060107 or later, using <a href="statusd/statusd_exec.lua">statusd_exec.lua</a> instead of this old version is suggested.

    <dt> <a href="statusbar/statusbar_fname.lua">statusbar_fname.lua</a>
    <dd> Show the focused frame name in the statusbar.
    
    <dt> <a href="statusbar/statusbar_workspace.lua">statusbar_workspace.lua</a>
    <dd> Show current workspace name in statusbar, or a list of workspace numbers with the active one indicated.

    <dt> <a href="statusbar/statusbar_wsname.lua">statusbar_wsname.lua</a>
    <dd> Shows the current workspace name in the statusbar, can also show a list of workspaces and indicate the current one. The current workspace indicator is customizable. This script also allows for per-head workspace information.
</dl>


<h3>Ion-statusd monitors</h3>
<a name="statusd"></a>

These monitors are run within the separate <tt>ion-statusd</tt> program.
Note that many of them depend on the Linux <tt>/proc</tt> filesystem and
thus will not work on other systems.

<dl>
    <!-- New scripts in alphabetical order, please -->
    <dt> <a href="statusd/statusd_amarok.lua">statusd_amarok.lua</a>
    <dd> Ion-statusd monitor reporting the current song from <a href="http://amarok.kde.org/">Amarok</a>.

    <dt> <a href="statusd/statusd_apm.lua">statusd_apm.lua</a>
    <dd> Ion-statusd monitor reporting APM status; works on OpenBSD 4.0 by executing
    external program every minute. Now with hints for battery state and
    external A/C connection.
    <dt> <a href="statusd/statusd_apm2.lua">statusd_apm2.lua</a>
    <dd> Ion-statusd monitor reporting APM status; works on FreeBSD by executing apm as an external program every minute. Added hints for a bit more color. Even though this is apm2, save it as statusd_apm.lua.

    <dt> <a href="statusd/statusd_batt.lua">statusd_batt.lua</a>
    <dd> Ion-statusd monitor reporting battery status; works with apm.
    
    <dt> <a href="statusd/statusd_binclock.lua">statusd_binclock.lua</a>
    <dd> Ion-statusd binary clock in two possible modes: Plain binary (numbers) and character mode (dots, lines, etc).

    <dt> <a href="statusd/statusd_bsdbatt.lua">statusd_bsdbatt.lua</a>
    <dd> Ion-statusd monitor for FreeBSD ACPI CMBATT status. Uses the sysctl interface.</dd>

    <dt> <a href="statusd/statusd_cpufreq.lua">statusd_cpufreq.lua</a>
    <dd> Ion-statusd monitor reporting current CPU speed in KHz, MHz, or GHz.  Uses the <code>/proc</code> filesystem and <code>cpufreq</code>.

    <dt> <a href="statusd/statusd_cpuspeed.lua">statusd_cpuspeed.lua</a>
    <dd> Ion-statusd monitor reporting current CPU speed; works with apm.

    <dt> <a href="statusd/statusd_cpustat.lua">statusd_cpustat.lua</a>
    <dd> Ion-statusd monitor reporting current CPU stats using the Linux <code>/proc/stat</code> interface.

    <dt> <a href="statusd/statusd_df.lua">statusd_df.lua</a>
    <dd> Ion-statusd monitor reporting free disk space.  Depends on <code>df</code>.

    <dt> <a href="statusd/statusd_dgs.lua">statusd_dgs.lua</a>
    <dd> Ion-statusd monitor reporting on any games waiting for a move
        on <a href="www.dragongoserver.net">www.dragongoserver.net</a>.

    <dt> <a href="statusd/statusd_exec.lua">statusd_exec.lua</a>
    <dd> Show output of external programs or scripts in statusbar. Uses non-blocking reads and can be used with both continously outputting and periodically run programs. Allows highlighting with regexp matching.

    <dt> <a href="statusd/statusd_flashing.lua">statusd_flashing.lua</a>
    <dd> Ion-statusd multi-purpose monitor. Show blinking alarms when some defined files or directories have changed. It can be used to monitor email inboxes, security logs, etc.

    <dt> <a href="statusd/statusd_fortune.lua">statusd_fortune.lua</a>
    <dd> Ion-statusd monitor displaying fortunes.
    
    <dt> <a href="statusd/statusd_iface.lua">statusd_iface.lua</a>
    <dd> Ion-statusd monitor reporting currently used network
    interface.

    <dt> <a href="statusd/statusd_inetaddr.lua">statusd_inetaddr.lua</a>
    <dd> Ion-statusd monitor reporting current IP address from ifconfig.

    <dt> <a href="statusd/statusd_info.lua">statusd_info.lua</a>
    <dd> Ion-statusd monitor reporting current CPU, RAM, and swap usage. Depends on <code>top</code> and <code>free</code>.

    <dt> <a href="statusd/statusd_iwinfo.lua">statusd_iwinfo.lua</a>
    <dd> Ion-statusd monitor reporting minimal wireless info.

    <dt><a href="statusd/statusd_laptopstatus.lua">statusd_laptopstatus.lua</a>
    <dd> Ion-statusd monitor reporting CPU speed &amp; temperature and battery status; works with acpi.

    <dt><a href="statusd/statusd_linuxbatt.lua">statusd_linuxbatt.lua</a>
    <dd> Ion-statusd monitor reporting battery percentage and status using the Linux <code>/proc/acpi</code> interface.

    <dt><a href="statusd/statusd_maildir.lua">statusd_maildir.lua</a>
    <dd> Ion-statusd monitor showing mailcount of a Maildir.

    <dt><a href="statusd/statusd_mcpu.lua">statusd_mcpu.lua</a>
    <dd> Ion-statusd monitor reporting multiple CPUs usage (average and per-CPU); works with <code>/proc/stat</code>.

    <dt><a href="statusd/statusd_mem.lua">statusd_mem.lua</a>
    <dd> Ion-statusd monitor reporting current memory usage with selective alarms and non blocking I/O. Depends on Linux <code>free</code> command.

    <dt><a href="statusd/statusd_meminfo.lua">statusd_meminfo.lua</a>
    <dd> Ion-statusd monitor reporting current memory and swap usage.  Depends on the Linux <code>/proc/meminfo</code> interface.

    <dt><a href="statusd/statusd_moc.lua">statusd_moc.lua</a>
    <dd> Ion-statusd monitor reporting <a href="http://moc.daper.net">moc</a> information and status.

    <dt> <a href="statusd/statusd_mocmon.lua">statusd_mocmon.lua</a>
    <dd> Ion-statusd monitor reporting <a href="http://moc.daper.net">moc</a> information. This is actually
         just a modification of <a href="statusd/statusd_xmmsip.lua">statusd_xmmsip.lua</a> using the idea of
	 non-blocking I/O as shown in <a href="statusd/statusd_mocp.lua">statusd_mocp.lua</a>.

    <dt><a href="statusd/statusd_mocp.lua">statusd_mocp.lua</a>
    <dd> Ion-statusd monitor reporting <a href="http://moc.daper.net">moc</a>
         status.  This is a stripped down, non-blocking I/O version of the
         above.  It is useful with
         <a href="scripts/rotate_statusbar.lua">rotate_statusbar.lua</a>.

    <dt><a href="statusd/statusd_mpd-socket.lua">statusd_mpd-socket.lua</a>
    <dd> Ion-statusd monitor reporting <a href="http://www.musicpd.org">mpd</a> information and status. Uses a socket interface to avoid some performance issues with the original.

    <dt><a href="statusd/statusd_mpd.lua">statusd_mpd.lua</a>
    <dd> Ion-statusd monitor reporting <a href="http://www.musicpd.org">mpd</a> information and status.

    <dt><a href="statusd/statusd_netmon.lua">statusd_netmon.lua</a>
    <dd> Ion-statusd network monitor reporting network activity.

    <dt><a href="statusd/statusd_nginfo.lua">statusd_nginfo.lua</a>
    <dd> Ion-statusd monitor reporting Nagios server(s) status.

    <dt><a href="statusd/statusd_nmaild.lua">statusd_nmaild.lua</a>
    <dd> Ion-statusd Maildir monitor with selective alarms, counters for different filters and optional command launcher when a new email is detected.

    <dt><a href="statusd/statusd_orpheus.lua">statusd_orpheus.lua</a>
    <dd> Ion-statusd monitor reporting song currently being played by orpheus.

    <dt><a href="statusd/statusd_pytone.lua">statusd_pytone.lua</a>
    <dd> Ion-statusd monitor reporting song currently being played by pytone.

    <dt><a href="statusd/statusd_sysmon.lua">statusd_sysmon.lua</a>
    <dd> Ion-statusd monitor for reporting various system resources.

    <dt><a href="statusd/statusd_ticker.lua">statusd_ticker.lua</a>
    <dd> Ion-statusd monitor which scrolls the output of specified programs.

    <dt><a href="statusd/statusd_uname.lua">statusd_uname.lua</a>
    <dd> Ion-statusd monitor for reporting uname.  It is primarily a simple
         example of how to use statusd.popen_bgread() with coroutines for
         non-blocking I/O.

    <dt><a href="statusd/statusd_uptime.lua">statusd_uptime.lua</a>
    <dd> Ion-statusd monitor reporting the system uptime.

    <dt><a href="statusd/statusd_volume.lua">statusd_volume.lua</a>
    <dd> Ion-statusd monitor reporting sound volume values (currently, master and pcm). Depends on aumix.

    <dt><a href="statusd/statusd_volume2.lua">statusd_volume2.lua</a>
    <dd> Ion-stadusd monitor reporting master sound volume and state (on or muted). Depends on <code>amixer</code>. Despite being named "statusd_volume2.lua", the script needs to be relabeled "statusd_volume.lua" to work.

    <dt><a href="statusd/statusd_weather.lua">statusd_weather.lua</a>
    <dd> Ion-stadusd monitor reporting weather.

    <dt><a href="statusd/statusd_xmms.lua">statusd_xmms.lua</a>
    <dd> Ion-statusd monitor reporting song currently selected in xmms' playlist.

    <dt> <a href="statusd/statusd_xmmsip.lua">statusd_xmmsip.lua</a>
    <dd> Ion-statusd monitor(s) reporting information from a xmms-infopipe-plugin's pipe.
         Can be customized in various ways.
</dl>

<!--See the Wiki for
<a href="http://wiki.ael.be/ion/index.php/LuaScripts">more</a> scripts,
and add your own.-->

<h2>Instructions</h2>
<a name="instructions"></a>

<h3>Using</h3>
<a name="using"></a>

To use any of the scripts, follow these directions.

<ol>
<li>Create the directory <tt>~/.ion3/</tt>, if it does not exist yet.
<li>Copy the script in this directory.
<li>Depending on the type of script, do the following.
    <dl>
    
    <!-- Extra space in tag to not confuse verify_index.pl hack -->
    <dt >Proper scripts
    <dd>Copy <tt>cfg_ion.lua</tt> in <tt>~/.ion3/</tt>, if it does not
        contain one already. This file can usually be found in either
        <tt>/usr/local/etc/ion3/</tt> or <tt>/etc/X11/ion3/</tt>.
        Then add the suitably modified line
<pre>
dopath("name of script without extension")
</pre>
        at the end of the file (in <tt>~/.ion3/</tt>).

    <dt >Statusbar
    <dd>Make sure you have <tt>cfg_statusbar.lua</tt> in <tt>~/.ion3/</tt>, 
        and add one of the monitors provided by the script in the template
        <em>without</em> the <tt>statusd_</tt> or such prefix.
        
    <dt >Styles
    <dd>That's it. You can choose <tt>styles/refresh-list</tt> from
        the <b>F12</b> main menu to have a running instance of Ion
        find it, and then choose the style from the same menu.
        
    </dl>
</ol>

Some scripts may need further setup. For more information, see 
the scripts themselves, and the
<a href="http://modeemi.cs.tut.fi/~tuomov/ion-doc-3/ionconf/"
>documentation</a>.


<h3>Downloading a copy</h3>
<a name="download"></a>

This scripts collection is a 
<a href="http://darcs.net/">darcs</a> repository. You can 
download a copy of the repository by first 
<a href="http://www.scannedinavian.org/DarcsWiki/CategoryBinaries">installing</a>
darcs and then running the command
<pre>
darcs get http://iki.fi/tuomov/repos/ion-scripts-3/
</pre>
This will get you a fully functional copy of the repository in the
directory <tt>ion-scripts-3</tt>. 
<p>
To update a previously downloaded repository, use <tt>darcs pull</tt>.
The command <tt>darcs changes</tt> can be used to view the list of
changes, and there is also an 
<a href="http://iki.fi/tuomov/repos/_rss/ion-scripts-3.rss">RSS feed</a>
of the most 
<a href="http://iki.fi/tuomov/repos/_log/ion-scripts-3.html.gz">recent changes</a>.

<h3>Contributing</h3>
<a name="contrib"></a>

If you have any scripts that you would like to see added here, or would
like to improve upon the existing scripts, please use the following 
procedure:

<ol>
<li> Get a copy of the repository as explained above.
<li> Repeat as many times as you want to:
     <ol>
     <li> Make your changes and put new files in the proper directories
          inside your copy of the repository. Use the command 
          <tt>darcs add <i>filename</i></tt> to put newly added files under
          version control.
     <li> Update this <tt>index.html</tt> to link to any added files,
          <em>in alphabetical order</em>.
     <li> Record your changes to your local copy of the repository with the 
          command <tt>darcs record -a</tt>. 
          <p class="note">
          The first time you do this, darcs
          will prompt for your email address. The preferred format is
          <em>Your real name &lt;user@host&gt;</em>. The address should 
          not be visible on a linked-to page unencrypted.
          The name of the patch is a short one-line summary of your
          changes. 
          </p>
          
          <p class="note">
          Because I use an UTF-8 locale (for now), you must also run this command 
          in an UTF-8 locale or stick to plain ASCII in your input, because 
          darcs stubbornly does not support locales with some of the developers 
          instead preferring an <a href="http://iki.fi/tuomov/b/archives/2006/08/26/T20_16_06/">UTF-8
          monoculture</a> that we will be suffering from for ages to come. 
          Yes, I have <a href="http://iki.fi/tuomov/b/archives/2006/10/29/T16_57_00/">considered</a> 
          switching to another VCS.
          </p>
          
     </ol>
<li> Send your patches to me by email with the command <tt>darcs send</tt>.
     I will apply them to the online repository if they look okay.
     <p class="note">
     Please note that darcs expects the sendmail (or equivalent) program
     on your system to be configured to be able to send mail. If this is
     not the case, I might never get your patch. If you do not see the
     patch in the repository or otherwise hear from me within some days,
     send your changes in the following way:
     
     Use the <tt>-o</tt> option to <tt>darcs send</tt> to store your 
     changes in a file, and send it as an attachment, the way you normally
     send email. Please begin the subject line with 'darcs patch'.
     <b>Only</b> the patch bundles generated by <tt>darcs send</tt> are 
     acceptable; <b>do not</b> send anything else. I refuse to go through
     the trouble of applying plain-old-diffs and documenting them in the 
     change log.
     </p>
     
</ol>

For more help on using darcs, see the 
<a href="http://darcs.net/manual/">darcs manual</a>.
</body>
</html>
